A software based system for controlling a decoder in a digital television system that uses a virtual machine and run time engine for processing digital television data and downloaded applications is described in the PCT application PCT/EP97/02116. This system possesses a number of advantages in comparison with previously known systems for receiver/decoders, notably in regard to the independence of the application layers of the system to the hardware elements of the manufactured decoder through the use of a virtual machine structure.
The system described in this application uses the principle of a single file queue-based structure for controlling and processing events that arise in the system. A number of disadvantages are associated with a queue based structure, including a relatively slow response to high priority events and an inability to efficiently handle a number of concurrent inputs into the system. As described, the system includes a number of process sequencer units. Although the system can prioritize the operation of such sequencers, once a particular process is started, it is not possible to change to another.
These drawbacks of the structure become particularly acute in the case where the receiver/decoder includes an interactive application. For example, the inability of the system to change tasks in response to a priority command combined with the often lengthy time needed to download data can result in the system being locked into one operation despite commands from the user to change to another mode.
There is also a need to simplify the device driver structure of this known system. Communication between the run time engine and the hardware level devices of the known decoder is handled by a plurality of device drivers, the overall organization of which is handled by a device manager which manages the prioritization of event messages and their input into the queue structure of the process sequencer units. As discussed in the application, while the run time engine is provided by the system authority, the device drivers and manager are usually provided by the decoder manufacturer, following the specifications of the system authority.
In this context, the term device is usually used to refer to the interface devices used to process data received by and transmitted by the decoder, such as received via a smart card or via the broadcast flux etc.
Differences in interpretation of the specification by the decoder manufacturer can lead to problems where, for example, the manager does not respect the correct classification of priority events. In such a case, the queuing system will be disrupted as the events supplied to the event filter and process sequencer will be wrongly identified in terms of their priority and will be incorrectly handled by the queuing system.
It is an object of one aspect of the present invention to overcome this problem.